---
id: unit2
title: 第二章 操作系统运行环境
---
## 处理器
说到计算机的运行环境不得不说计算机的核心 ***处理器（CPU）***。处理器一般由**运算器、控制器、一系列的寄存器以及高速缓存**构成。  
其中运算器实现指令中的算术和逻辑运算，是计算机计算的核心。  
**在处理器内通常有两类寄存器：**  
第一类称为用户可见寄存器(像编译器会使用)；  
第二类称为控制和状态寄存器(一般是具有特权的操作系统代码使用。)。  
通常用户可见寄存器对所有程序都是可用的，由机器语言直接引用。它一般包括数据寄存器（Data Register）、地址寄存器（Address Register）以及条件码寄存器。  
控制寄存器，一般包括程序计数器，指令寄存器积和程序状态字（PSW， 记录了处理器的运行模式等。）。

**指令执行的基本过程：**
最简单的处理指令方式包括两个步骤：  
首先，处理器每次从存储器中读取一条指令，并在取指令完成后，根据指令类别自动将程序计数器的值变成下一条指令的地址，通常是自增1；  
其次，取到的指令被存储在处理器的指令寄存器中，处理器于是解释并执行这条指令。


**指令大致可以分成五类：**   
（1）访问存储器指令，它们负责处理器和存储器之间的数据传送；  
（2）I／O指令，它们负责处理器和I／O模块之间的数据传送和命令发送；  
（3）算术逻辑指令，有时又称为数据处理指令，用以执行有关数据的算术和逻辑操作；  
（4）控制转移指令，这种指令可以指定一个新的指令的执行起点；  
（5）处理器控制指令，这种指令用于修改处理器状态，改变处理器工作方式等。

**指令根据权限分类：**  
特权指令和非特权指令：  
特权指令是指在指令系统中那些只能由操作系统使用的指令。这些指令是不允许一般的用户使用的。用户只能使用非特权指令。  
对于一个单用户单任务的微型计算机普通的用户通常都可使用全部的指令，但是在多用户或多任务的多道程序设计环境中指令系统分为特权指令和非特权指令。


**处理器的工作状态**
管态和目态：多数系统将处理器工作状态划分为管态和目态。  
管态一般指操作系统管理程序运行的状态，具有较高的特权级别，又称为内核态、特权态（特态）、系统态；  
目态一般指用户程序运行时的状态，具有较低的特权级别，又称为用户态、普通态（普态）。

**处理器工作状态的转换：**  
（1）目态到管态的转换。其转换的唯一途径是通过中断。中断响应时交换中断向量，
新的中断向量中的PSW的处理器状态位标志为管态。  
（2）管态到目态的转换。可通过设置PSW指令（修改程序状态字），实现从操作系统
向用户程序的转换。

## 计算机系统硬件部件
**存储器的类型：** 在微型计算机中使用的半导体存储器有若干种不同的类型，但基本上可划分为两类：  
(1)读写型的存储器(RAM)，是指可以把数据存人其中任一地址单元，并且可在以后的任何时候把数据读出来，或者重新存入新的数据的一种存储器。  
(2)只读型的存储器(ROM)。只能从其中读取数据，但不能随意地用普通的方法向其中写入数据。通常要向其中写入数据只能用特殊的方法进行。

存储器的层次结构：计算机存储系统的设计主要考虑三个问题：容量、速度和成本。  
从整个系统来看，在计算机系统中的层次化的存储体系由寄存器、高速缓存、内存储器、硬盘存储器、磁带机和光盘存储器等装置构成。  
如果程序造成系统崩溃，对 内存中信息加以保护，使其他程序不会破坏，是其正确运行的基本条件之一。  
界地址寄存器是被广泛使用了一种存储保护技术。  
方法是在处理器中设置一对界限寄存器来存储该用户作业中的内存下限和上限地址。分别称为下限寄存器和上线寄存器，每当处理器要访问内存时，
硬件自动将被访问 是否在合理范围内。

**I/O部件**

处理器和I/O之间通讯的几种方式。  
**通道**是独立于中央处理器的，专门负责数据I/O传输工作的处理单元。  
它代替处理器对I/O操作进行控制，从而使处理器和外部设备可以并行工作，所以通道也称为I/O处理器。  
**DMA技术**，即直接存储器访问技术，通过系统总线中的一个独立控制单元-DMA控制器，自动地控制成块数据在内存和I/O单元之间的传送。  
**缓冲技术**是用在外部设备与其他硬件部件之间的一种数据暂存技术，它利用存储器件在外部设备中设置了数据的一个存储区域，称为缓冲区。  
采用缓冲技术最根本的原因是处理器处理速度与设备传输速度不相匹配,需要缓冲去缓解期间的速度矛盾。

## 中断机制
 中断机制是操作系统中极为重要的一部分，在管理输入输出设备,处理外部的各种事件时，都需要中断机制来进行处理。  
中断的实现是硬件中断装置和相应的中断软件共同完成的。

**中断的概念：**  
中断是指处理器对系统中或系统外发生的异步事件的响应,由外部事件引发的。  
异步事件是指无一定时序关系的随机发生的事件,是由正在执行的指令引发的。  
比如我们正在看书，此时电话响了(异步事件)，于是我们用书签，记住正在看的一页（中断点），再去接电话，电话处理完了回来继续看。

**区分异常和中断**  
最早中断和异常并没有区分都把他们叫做中断。随着他们发生的原因和处理方式的差别越来越大，才有了现在的中断和异常之分。  
中断由外部事件引发的。异常是由正在执行的指令引发的。

**中断与异常的分类：**  
典型的中断包括：  
（1）时钟中断，由处理器内部的计时器产生，允许操作系统以一定规律执行函数，如时间片到时、硬件实时钟到时等。  
（2）输入输出（I／O）中断，由I／O控制器产生，用于通知一个I／O操作的正常完成或者发生的错误。  
（3）控制台中断，如系统操作员通过控制台发出命令等。  
（4）硬件故障中断，由掉电、存储器校验错等硬件故障引起等。  

典型的异常包括(异常发生的时间以及位置具有确定性)：  
（1）程序性中断，在某些条件下由指令执行结果产生，例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等。  
（2）访管指令异常，目的是要求操作系统提供系统服务。

**典型中断的处理：**  
**I／O中断**   
 Io中断通常可分为两大类，正常结束中断和异常中断，对于前置来说，如果继续io操作，就需要重新启动io，将其唤醒，对于后者常常是失败引起的，重试的次数常常有个上限，当次数过大时系统将判定硬件故障，比如我们在计算机上看碟片时会碰到读不出内容，重复了几次之后，系统就会停止读碟，并报告错误  

**硬件故障中断**
硬件故障，一般是由硬件的本身引起的，通常需要人工的干预。  
时钟中断，程序性中断和系统服务请求（自愿性中断）等。



## 系统调用

**系统调用：** 就是用户在程序中调用操作系统所提供的一些子功能。

**系统调用的分类：**  
（1）进程控制类系统调用。  
（2）文件操作类系统调用。  
（3）进程通信类系统调用。  
（4）设备管理类系统调用。  
（5）信息维护类系统调用(比如调用获得当前的时间，文件访问和修改的时间,了解当前系统的用户数,版本号,内存等信息)。  


系统调用的处理过程：

